package org.wdcode.back.po;

import java.io.Serializable;

import org.wdcode.back.helper.CompanyHelper;
import org.wdcode.back.helper.DepartmentHelper;
import org.wdcode.back.helper.OperateHelper;
import org.wdcode.back.helper.RoleHelper;
import org.wdcode.back.helper.UserHelper;
import org.wdcode.common.tools.Conversion;
import org.wdcode.common.util.CommonUtil;

/**
 * 日志实体
 * @author WD
 * @since JDK6
 * @version 1.0 2009-11-23
 */
public final class Logs extends BaseBackCreateDateEntityBean implements Serializable {
	// 序列化ID
	private static final long	serialVersionUID	= 3465376716816368851L;

	// 用户名
	private Integer				userId;
	// 公司名
	private Integer				companyId;
	// 部门名
	private Integer				departmentId;
	// 角色名
	private Integer				roleId;
	// 操作名
	private Integer				operateId;
	// 内容
	private String				content;

	// 用户实体
	private User				user;
	// 公司实体
	private Company				company;
	// 部门实体
	private Department			department;
	// 角色实体
	private Role				role;
	// 操作实体
	private Operate				operate;

	/**
	 * 获得公司实体
	 * @return 公司实体
	 */
	public Company getCompany() {
		return CommonUtil.isEmpty(company) ? setCompany(companyId) : company;
	}

	/**
	 * 设置公司实体
	 * @param companyId 公司ID
	 * @return 公司实体
	 */
	public Company setCompany(Integer companyId) {
		return company = CompanyHelper.getHelper().get(Conversion.toInt(companyId));
	}

	/**
	 * 获得上级部门实体
	 * @return 上级部门实体
	 */
	public Department getDepartment() {
		return CommonUtil.isEmpty(department) ? setDepartment(companyId) : department;
	}

	/**
	 * 设置上级部门实体
	 * @param departmentId 部门ID
	 * @return 上级部门实体
	 */
	public Department setDepartment(Integer departmentId) {
		return department = DepartmentHelper.getHelper().get(Conversion.toInt(departmentId));
	}

	/**
	 * 设置管理人实体
	 * @param userId 管理人ID
	 * @return 管理人实体
	 */
	public User setUser(Integer userId) {
		return user = UserHelper.getHelper().get(Conversion.toInt(userId));
	}

	/**
	 * 获得管理人实体
	 * @return 管理人实体
	 */
	public User getUser() {
		return CommonUtil.isEmpty(user) ? setUser(userId) : user;
	}

	/**
	 * 获得操作实体
	 * @return 操作实体
	 */
	public Operate getOperate() {
		return CommonUtil.isEmpty(operate) ? setOperate(operateId) : operate;
	}

	/**
	 * 设置操作实体
	 * @param operateId 操作ID
	 * @return 操作实体
	 */
	public Operate setOperate(Integer operateId) {
		return operate = OperateHelper.getHelper().get(Conversion.toInt(operateId));
	}

	/**
	 * 获得角色实体
	 * @return 角色实体
	 */
	public Role getRole() {
		return CommonUtil.isEmpty(role) ? setRole(roleId) : role;
	}

	/**
	 * 设置角色实体
	 * @param companyId 角色ID
	 * @return 角色实体
	 */
	public Role setRole(Integer roleId) {
		return role = RoleHelper.getHelper().get(Conversion.toInt(roleId));
	}

	/**
	 * 获得用户ID
	 * @return 用户ID
	 */
	public Integer getUserId() {
		return this.userId;
	}

	/**
	 * 设置用户ID
	 * @param userId 用户ID
	 */
	public void setUserId(Integer userId) {
		this.userId = userId;
	}

	/**
	 * 获得公司ID
	 * @return 公司ID
	 */
	public Integer getCompanyId() {
		return this.companyId;
	}

	/**
	 * 设置公司ID
	 * @param companyId 公司ID
	 */
	public void setCompanyId(Integer companyId) {
		this.companyId = companyId;
	}

	/**
	 * 获得部门ID
	 * @return 部门ID
	 */
	public Integer getDepartmentId() {
		return this.departmentId;
	}

	/**
	 * 设置部门ID
	 * @param depaId 部门ID
	 */
	public void setDepartmentId(Integer departmentId) {
		this.departmentId = departmentId;
	}

	/**
	 * 获得角色ID
	 * @return 角色ID
	 */
	public Integer getRoleId() {
		return this.roleId;
	}

	/**
	 * 设置角色ID
	 * @param roleId 角色ID
	 */
	public void setRoleId(Integer roleId) {
		this.roleId = roleId;
	}

	/**
	 * 获得操作ID
	 * @return 操作ID
	 */
	public Integer getOperateId() {
		return this.operateId;
	}

	/**
	 * 设置操作ID
	 * @param operateId 操作ID
	 */
	public void setOperateId(Integer operateId) {
		this.operateId = operateId;
	}

	/**
	 * 获得内容
	 * @return 内容
	 */
	public String getContent() {
		return content;
	}

	/**
	 * 设置内容
	 * @param content 内容
	 */
	public void setContent(String content) {
		this.content = content;
	}
}